package com.songtech.basedao.service;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.songtech.base.universal.dao.BaseDao;
import com.songtech.basedao.model.BaseDaoTest1;

/**
 * 测试dao的service
 * <br>使用方式一、
 * <br>直接使用基本数据访问的dao
 * <br>service中注入格式：@Resource(name = "com.songtech.basedao.model.BaseDaoTest1")，
 * <br>com.songtech.basedao.model.BaseDaoTest1是要注入的dao将会处理的entity对象
 */
@Service
public class BaseServiceImpl1 {
	@Resource(name = "com.songtech.basedao.model.BaseDaoTest1")
	private BaseDao<BaseDaoTest1> baseDaoImpl;

	/**
	 * 记录添加
	 * @param object
	 * @return
	 * @throws SQLException 
	 */
	public int insert(BaseDaoTest1 obj) throws SQLException {
		return baseDaoImpl.insert(obj);
	}
	
	/**
	 * 多条数据同时插入
	 * @param objs
	 * @return
	 * @throws SQLException 
	 */
	public int insert(List<BaseDaoTest1> objs) throws SQLException {
		return baseDaoImpl.insert(objs);
	}

	/**
	 * 记录添加
	 * @param object
	 * @return
	 * @throws SQLException 
	 */
	public int insertSetUUID(BaseDaoTest1 obj) throws SQLException {
		return baseDaoImpl.insertSetUUID(obj);
	}
	
	/**
	 * 多条数据同时插入
	 * @param objs
	 * @return
	 * @throws SQLException 
	 */
	public int insertSetUUID(List<BaseDaoTest1> objs) throws SQLException {
		return baseDaoImpl.insertSetUUID(objs);
	}
	
	/**
	 * 删除某个记录
	 * @param id 主键
	 * @return
	 * @throws SQLException 
	 */
	public int delete(Serializable id) throws SQLException {
		return baseDaoImpl.delete(id);
	}
	
	/**
	 * 条件删除记录
	 * @param obj 条件对象
	 * @return
	 * @throws SQLException 
	 */
	public int delete(BaseDaoTest1 obj) throws SQLException {
		return baseDaoImpl.delete(obj);
	}
	
	/**
	 * 更新不为null的字段
	 * <br>根据主键进行更新
	 * @param obj
	 * @return
	 * @throws SQLException 
	 */
	public int updateLocal(BaseDaoTest1 obj) throws SQLException {
		return baseDaoImpl.updateNotEmpty(obj);
	}
	
	/**
	 * 更新所有字段
	 * @param obj
	 * @return
	 * @throws SQLException 
	 */
	public int update(BaseDaoTest1 obj) throws SQLException {
		return baseDaoImpl.update(obj);
	}
	
	/**
	 * 通过主键获取某个记录
	 * @param id 主键
	 * @return Object
	 * @throws SQLException 
	 */
	public BaseDaoTest1 selectById(Serializable id) throws SQLException {
		return baseDaoImpl.selectById(id);
	}
}
